const express = require('express');
const cors = require('cors');
const app = express();
const PORT = process.env.PORT || 3000;
const { testConnection } = require('./lib/db');

// 引入配置文件
// const config = require('./config');

// 引入路由模块
const indexRoutes = require('./routes/index');
const healthRoutes = require('./routes/health');
const apiRoutes = require('./routes/api');
// const { startScheduledTask, stopScheduledTask } = require('./fenbi/deepseek');

// 引入数据库模块
// const { testConnection } = require('./lib/db');

// 使用CORS中间件
app.use(cors());

// 处理预检请求
// app.options('*', cors());

// 中间件
app.use(express.json()); // 解析JSON请求体
app.use(express.urlencoded({ extended: true })); // 解析URL编码的请求体

// 使用路由模块
app.use('/', indexRoutes);
app.use('/', healthRoutes);
app.use('/api', apiRoutes);

// Express 5.x 会自动处理404错误，无需手动配置

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({
    error: '服务器内部错误',
    message: process.env.NODE_ENV === 'development' ? err.message : '请联系管理员'
  });
});

// 启动服务器
app.listen(PORT, async () => {
  console.log(`🚀 粉笔后端服务器已启动`);
  console.log(`📍 服务地址: http://localhost:${PORT}`);
  console.log(`🏥 健康检查: http://localhost:${PORT}/health`);
  console.log(`📖 API文档: http://localhost:${PORT}`);
  
  // 测试数据库连接
  await testConnection();
  
  // setTimeout(() => {
  //   startScheduledTask();
  // }, 1000);
});

module.exports = app;
